package com.dd.cloud.user.service.aicms;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.cloud.user.entity.aicms.AicmsDiagnosticResult;
import com.dd.cloud.user.req.aicms.*;
import com.dd.cloud.user.res.aicms.*;
import com.dd.cloud.user.vo.DiagnosticRecordVo;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * <p>
 * 诊断结果表 服务类
 * </p>
 *
 * @author czg
 * @since 2022-04-27
 */
public interface IAicmsDiagnosticResultService extends IService<AicmsDiagnosticResult> {
    /**
     * 在线诊断接口
     *
     * @param request
     * @param req
     * @return
     */
    DiagnosticRecordVo ask(HttpServletRequest request, AskDoctorParamsReq req);

    /**
     * 通过患者的就诊卡id查询患者的就诊记录
     *
     * @param req
     * @return
     */
    Page<AicmsDiagnosticMedPageRes> queryDiagnosticsByPatient(PatientRecordReq req);

    /**
     * 通过诊断编号查询诊断结果
     *
     * @param tencode
     * @return
     */
    AicmsDiagnosticResult queryDiagnosticsByTencode(String tencode);

    /**
     * 查询诊断记录
     *
     * @param req
     * @return
     */
    IPage<AicmsDiagnosticResultPageRes> queryDiagnosticsTerms(DiagnosticRecordReq req);

    /**
     * 查询就诊人的诊断记录 初诊复诊
     *
     * @param req
     * @return
     */
    Page<AicmsDiagnosticMedPageRes> queryDiagnosticsMedTerms(DiagnosticRecordMedReq req);

    /**
     * 查询诊断结果详情
     *
     * @param diagnosticId
     * @return
     */
    AicmsDiagnosticResultDetail queryDiagnosticsMechan(Integer diagnosticId);

    /**
     * 删除诊断记录
     *
     * @param tencode
     */
    void delDiagnostics(String tencode);

    /**
     * 查询诊断记录 运营后台无效订单列表
     *
     * @param req
     * @return
     */
    IPage<AicmsDiagnosticResultSystemPageRes> queryAicmsDiagnosticResultSystemPage(AicmsDiagnosticResultSystemPageReq req);

    /**
     * 导出运营后台无效订单列表
     *
     * @param response
     * @param req
     */
    void exportAicmsDiagnosticResultSystemExcel(HttpServletResponse response, AicmsDiagnosticResultSystemPageReq req);

    /**
     * 查询诊断记录详情 运营后台无效订单列表
     *
     * @param diagnosticId
     * @return
     */
    AicmsDiagnosticResultSystemDetailRes queryAicmsDiagnosticResultSystemDetailRes(Integer diagnosticId);
}
